package linter.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import linter.POJO.DO.Posts;
import linter.POJO.DTO.PostsDTO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
* @author 北煜
* @description 针对表【posts(文章内容表)】的数据库操作Mapper
* @createDate 2024-03-17 02:50:34
* @Entity linter.POJO.DO.Posts
*/
public interface PostsMapper extends BaseMapper<Posts> {

    /**
     * 分类查询文章
     *
     * @return 查询到的文章
     */
    List<PostsDTO> selectPosts(@Param("type") String type);

    /**
     * @param postsId 文章ID
     * @return 返回查找到的文章
     */
    Integer selPosts(@Param("postsId") Integer postsId);

    /**
     * @return 返回修改成功与否
     */
    boolean updateByLikes(@Param("postsId") Integer postsId);

    /**
     * @param postsId 文章ID
     * @return 返回修改成功与否
     */
    boolean updateByViews(@Param("postsId") Integer postsId);

    /**
     *
     * @return 返回修改成功与否
     */
    boolean updateByCollectNub(@Param("postsId") Integer postsId);

    /**
     * @return
     * 返回修改成功与否
     */
    int updateByCollectNubDel(@Param("postsId") Integer postsId);

    /**
     *  uuid 用户ID
     * @return 返回查询到的文章
     */
    List<Posts> selectByUuid(@Param("uuid") Long uuid);

    /**
     * @param postsId 待审核的文章ID
     * @param reviewedStatus 该文章的状态 0:未审核 1:审核通过 2:审核未通过
     * @return 审核状态
     */
    boolean updateByReviewedStatus(@Param("postsId") Integer postsId, @Param("reviewedStatus") Integer reviewedStatus);

    /**
     * @return
     * 返回需要审核的文章
     */
    List<PostsDTO> getReviewedPosts();

    /**
     * @param uuid 用户ID
     * @return 返回审核未通过的文章
     */
    Posts selectPostsNotReviewed(@Param("postsId") Integer postsId);

    /**
     * @param postsId 文章ID
     * @return 返回修改成功与否
     */
    boolean updateLike(@Param("postsId") Integer postsId);

    /**
     * @param postsId 文章ID
     * @return 文章内容
     */
    Posts selectPostsContent(@Param("postsId") Integer postsId);

    /**
     * @param id 文章ID
     * @return Boolean
     */
    Boolean paaPosts(@Param("postsId") int id);
    /**
     * @param id 文章ID
     * @return Boolean
     */
    boolean failPosts(@Param("postsId") int id);
}




